/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.tomasio.projects.welcome.model;

import com.tomasio.projects.welcome.dto.TranseunteDTO;
import com.tomasio.projects.welcome.dto.VeiculoDTO;

/**
 *
 * @author administrador
 */
public class Veiculo extends Transeunte {

    
    private String placa;
    private String modelo;
    private String marca;
    private String cor;
    private TipoVeiculo tipo;
    private Long pessoaId;



    public Veiculo() {
    }

    public Veiculo(VeiculoDTO dto) {
        if (dto != null){
            fillAttributesFromDTO(dto);
            this.cor = dto.getCor();
            this.id = dto.getId();
            this.marca = dto.getMarca();
            this.modelo = dto.getModelo();
            this.placa = dto.getPlaca();
            this.tipo = dto.getTipo();
            if(dto.getPessoa() != null){
                this.pessoaId = dto.getPessoa().getId();
            }
            
        }
    }

    public Long getPessoaId() {
        return pessoaId;
    }

    public void setPessoaId(Long pessoaId) {
        this.pessoaId = pessoaId;
    }


    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    
    public TipoVeiculo getTipo() {
        return tipo;
    }

    public void setTipo(TipoVeiculo tipo) {
        this.tipo = tipo;
    }
    
    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Veiculo other = (Veiculo) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.modelo != null ? this.modelo.hashCode() : 0);
        return hash;
    }

    @Override
    public VeiculoDTO createDTO() {
        return (VeiculoDTO) super.createDTO();
    }

    @Override
    protected TranseunteDTO instantiateDTO() {
        VeiculoDTO dto = new VeiculoDTO();
        dto.setCor(cor);
        dto.setMarca(marca);
        dto.setModelo(modelo);
        dto.setPlaca(placa);
        dto.setTipo(tipo);
        
        return dto;
    }






}
